package com.itheima.web;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.HashMap;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
    private Integer code; //返回前端数据，1表示成功，0和其他数字表示失败
    private String msg;  //错误信息
    private T data;  //数据
    private Map map = new HashMap();  //动态数据

    /**
     * 快捷创建R对象，封装成功的提示信息和数据
     *
     * @param msg
     * @param object
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(String msg, T object) {
        Result<T> r = new Result<T>();
        r.msg = msg;
        r.data = object;
        r.code = 1;
        return r;
    }

    /**
     * 快捷创建Result对象，封装成功的提示信息
     *
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(String msg) {
        Result<T> r = new Result<T>();
        r.msg = msg;
        r.code = 1;
        return r;
    }

    /**
     * 快捷创建Result对象，封装失败的提示信息
     *
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> error(String msg) {
        Result<T> r = new Result<T>();
        r.msg = msg;
        r.code = 0;
        return r;
    }

    public Result<T> add(String key, Object value) {
        this.map.put(key, value);
        return this;
    }
}